package br.com.comanda.activity.alerta;

import android.app.AlertDialog;
import android.content.Context;
import android.util.Log;
import android.widget.Toast;
import br.com.comanda.util.Constantes;

/**
 * Classe utilitária para interagir com usuario atraves de mensagens
 */
public class MensagemAlerta {

	/**
	 * Cria um AlertDialog que interage com o usuario atraves de componentes
	 * gráficos como botões, campos de textos e avisos.
	 * 
	 * @param context
	 * @param message
	 * @return
	 */
	public static AlertDialog.Builder prepara(Context context, String message) {
		return new AlertDialog.Builder(context).setMessage(message);
	}

	/**
	 * Cria um AlertDialog com a mensagem do usuario e um botão de Ok que fará o
	 * alert desaparecer
	 * 
	 * @param context
	 * @param message
	 */
	public static void mostra(Context context, String message) {
		new AlertDialog.Builder(context).setMessage(message).setPositiveButton("OK", null).show();
	}

	/**
	 * Cria um AlertDialog com a mensagem do usuario e um botão de Ok que fará o
	 * alert desaparecer. Como é utilizado após o acontecimento de um erro, deve
	 * passar tambem o erro para ser logado.
	 * 
	 * @param context
	 * @param message
	 */
	public static void mostra(Context context, String message, Throwable e) {
		new AlertDialog.Builder(context).setMessage(message).setPositiveButton("OK", null).show();

		Log.e(Constantes.TAG_LOG, e.getMessage(), e);
	}

	/**
	 * Mostra um alerta básico e rápido com apenas texto
	 */
	public static void showFast(Context context, int msgCode, Object... parametros) {
		String message = context.getString(msgCode);

		for (int i = 0; i < parametros.length; i++) {
			message = message.replace(String.format("{%d}", i), String.valueOf(parametros[i]));
		}

		Toast.makeText(context, message, Toast.LENGTH_SHORT).show();
	}

	/**
	 * Mostra um alerta básico e demorado com apenas texto
	 */
	public static void showSlow(Context context, int msgCode, Object... parametros) {
		String message = context.getString(msgCode);

		for (int i = 0; i < parametros.length; i++) {
			message = message.replace(String.format("{%d}", i), String.valueOf(parametros[i]));
		}

		Toast.makeText(context, message, Toast.LENGTH_LONG).show();
	}
	
}